1. Technical Field
This application generally relates to code and processor architectures, and more particularly to techniques used in connection with detecting incompatibilities and coding dependencies.
2. Description of Related Art
A computer system may include one or more central processing units (CPUs) coupled to a memory and other components, such as I/O devices. A computer system may be used to perform a variety of processing tasks and operations. Binary images or machine executable programs may include instructions and data used in connection with performing a particular task. The instructions may be executed by the CPU and may cause the CPU to access the data at one or more locations. The instructions and/or data associated with an executable program may be produced specifically for use with a particular CPU architecture or family of processors. The CPU architecture may also follow certain conventions, for example, when handling memory storage such as accessing the data.
The executable program may be produced from source code written in a programming language. The source code may be produced by a programmer or other automated coding technique and used in connection with generating a first machine executable program for execution on a first CPU architecture. The first CPU architecture may operate in accordance with a first set of conventions. The source code may be written in such a way that there are dependencies on one or more of the first set of conventions. Problems may arise when the same source code is used to produce a second machine executable program for execution on a second CPU architecture having a different second set of conventions. The coding dependencies upon the first set of conventions may result in the first machine executable program operating as expected for the first CPU architecture and associated conventions, but may result in the second machine executable program, associated with the second CPU architecture and conventions, operating in an incompatible manner and producing unexpected results.
Thus, it may be desirable to detect such occurrences of incompatibilities with different architectures and/or conventions as may be associated with different computing environments.